package service;

import java.util.ArrayList;

import bean.DescuentoPorCantidad;
import bean.VOList;
import bean.vo.DescuentoPorCantidadVO;

@SuppressWarnings({"unchecked"})
public class ServiciosDescuentoPorCantidad {
	
	protected static DescuentoPorCantidad buscarDescuentoPorCantidad (int cantidad) throws Exception {
		DescuentoPorCantidad desc = (DescuentoPorCantidad) SistemaCVR.getInstancia().buscarEntidad(new DescuentoPorCantidad(cantidad));
		return desc;
	}
	
	public static DescuentoPorCantidadVO buscarDescuentoPorCantidad (DescuentoPorCantidadVO desc) throws Exception {
		DescuentoPorCantidad descuento = ServiciosDescuentoPorCantidad.buscarDescuentoPorCantidad(desc.getCantidadMinima());
		return descuento != null ? descuento.getVO() : null;
	}
	
	public static ArrayList <DescuentoPorCantidadVO> getDescuentosPorCantidad() throws Exception{
		return new VOList<DescuentoPorCantidadVO>().getVoList(SistemaCVR.getInstancia().getEntidades(DescuentoPorCantidad.class.getName()));
	}
	
	public static void crearDescuentoPorCantidad (DescuentoPorCantidadVO desc) throws Exception {
		if (ServiciosDescuentoPorCantidad.buscarDescuentoPorCantidad(desc) == null) {
			DescuentoPorCantidad descuento = new DescuentoPorCantidad(desc.getCantidadMinima(), desc.getPorcentajeDescuento());
			SistemaCVR.getInstancia().agregarEntidad(descuento);
		} else {
			throw new Exception("ERROR - Ya existe un descuento para la cantidad ingresada.");
		}
	}
	
	public static void eliminarDescuentoPorCantidad (DescuentoPorCantidadVO desc) throws Exception {
		DescuentoPorCantidad descuento = ServiciosDescuentoPorCantidad.buscarDescuentoPorCantidad(desc.getCantidadMinima());
		if (descuento != null ){
			SistemaCVR.getInstancia().eliminarEntidad(descuento);
		} else {
			throw new Exception("ERROR - No existe la descuento por cantidad seleccionada.");
		}
	}
}
